package com.mf.service.upload;

import com.mf.entity.request.upload.FileInitSliceDataReq;
import com.mf.entity.request.upload.FileUploadFileReq;

/**
 * @Author: lmf
 * @Create: 2024/11/20 21:11
 * Description:
 */
public interface IFileUploadProcess {
    /**
     * 文件上传
     * 1.完整文件直接上传，上传完更新库的文件信息(resourceFile)
     * 2.分片上传需要判断是否全部都上传完，全部上传完则合并数据,
     * 合并后删除原来的分片数据，并更新库的文件信息（resourceFile）。
     */
    void uploadFile(FileUploadFileReq fileUploadFileReq);

    /**
     * 初始化切片操作
     * 1.没有桶创建桶
     * 2.如果是分片缓存，后续分片上传需要
     * 3.先插入一条资源附件表
     */
    void initFileData(FileInitSliceDataReq fileInitSliceDataReq);

    /**
     * 根据文件id，总切片(分片没有上传完需要)数删除
     */

    Integer deleteById(Integer id);
}
